package com.zw.pdm.module.system.mapper;


import com.zw.pdm.module.overview.model.ProChgInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description:
 * @Author: China.sgl
 * @Date: 2020/10/23 16:04
 */
public interface IndexMapper {

    /**
     * 下达设计任务
     *
     * @return
     */
    Integer getIssueTaskCount();

    /**
     * 产品结构待审核数量
     *
     * @return
     */
    Integer getCheckProCount();

    /**
     * 产品结构待创建数量
     *
     * @return
     */
    Integer getSaveProCount();

    /**
     * 外观设计清单审核数量
     *
     * @return
     */
    Integer getCheckProOutCount(Integer userId);

    /**
     * @Author mayongfeng
     * @Date 12:42 2020/12/8
     * @Description 制作件清单未提交数量
     *
     **/
    Integer getNotSubmitMakeCount(@Param("postUserId") Integer userId);

    /**
     * @Author mayongfeng
     * @Date 12:42 2020/12/8
     * @Description 制作件清单未审核数量
     *
     *
     * @param userId*/
    Integer getNotCheckMakeCount(@Param("verifier") Integer userId);

    /**
     * 查询 有多少未接收项
     * @return
     */
    Integer getReleaseCount();


    /**
     * @Author mayongfeng
     * @Date 12:42 2020/12/8
     * @Description 图纸变更未提交数量
     *
     **/
    Integer getNotSubmitDrawtCount(@Param("postUserId") Integer userId);

    /**
     * @Author mayongfeng
     * @Date 12:42 2020/12/8
     * @Description 图纸变更未审核数量
     *
     **/
    Integer getNotCheckDrawCount(@Param("verifier") Integer userId);

    /** 提报计划未审核数量 */
    Integer getNotCheckReportCount(Integer userId);

    /** 提报计划未提交数量 */
    Integer getNotSubmitReportCount(Integer userId);

    /** 工艺卡未校对数量 */
    Integer getNotVerifyCardCount(String code);

    /** 外观设计清单审核数量 */
    Integer getOutwardCount(Integer userId);

    /** 成本信息定额审核（数量） */
    Integer getCostQuotaCount(Integer userId);



    /** ------------设计任务总览数量查询 box1------- */
    /** 接收 */
    Integer getDesignRecCount(@Param("year") Integer year, @Param("month") Integer month);
    /** 下达 */
    Integer getDesignSendCount(@Param("year") Integer year, @Param("month") Integer month);
    /** 完成 */
    Integer getDesignCompCount(@Param("year") Integer year, @Param("month") Integer month);
    /** 待创建产品结构 */
    Integer getDesignCreateCount();
    /** -------------------end----------------- */



    /** --------------工艺任务总览 box2------------- */
    /** 接收 */
    Integer getCraRecCount(@Param("year") Integer year, @Param("month") Integer month);
    /** 下达 */
    Integer getCraSendCount(@Param("year") Integer year, @Param("month") Integer month);
    /** 完成 */
    Integer getCraCompCount(@Param("year") Integer year, @Param("month") Integer month);
    /** 待下达 */
    Integer getCraWaitSendCount(@Param("year") Integer year, @Param("month") Integer month);
    /** -------------------end--------------------*/



    /** --------------外购件提报计划总览 box3------------- */
    Integer getReportSheetCount(@Param("year") Integer year,
                                @Param("month") Integer month,
                                @Param("status") Integer status,
                                @Param("sheetType") Integer sheetType,
                                @Param("dept") Integer dept,
                                @Param("reportType") Integer reportType);
    /** -------------------end--------------------*/




    /** --------------制作件清单总览 box4------------- */
    Integer getMakeCount(@Param("year") Integer year,
                         @Param("month") Integer month,
                         @Param("status") Integer status,
                         @Param("sheetType") Integer sheetType,
                         @Param("deptId") Integer deptId);
    /** --------------------end-------------------*/




    /** --------------图纸变更单总览 box5------------- */
    Integer getDrawChangeCount(@Param("year") Integer year,
                               @Param("month") Integer month,
                               @Param("status") Integer status,
                               @Param("deptId") Integer deptId);
    /** -------------------end--------------------*/



    /** --------------外观设计总览 box6------------- */
    Integer getOutwardDesignCount(@Param("year") Integer year,
                                  @Param("month") Integer month,
                                  @Param("status") Integer status,
                                  @Param("sheetType") Integer sheetType);
    /** ------------------end-------------------- */



    /** --------------工艺任务总览 box7------------- */
    /** 制作件清单数量查询 */
    Integer getMakeSheetCount(@Param("year") Integer year,
                              @Param("month") Integer month,
                              @Param("sheetType") Integer sheetType,
                              @Param("receiveStatus") Integer receiveStatus);
    /** 图纸变更单数量查询 */
    Integer getDrawChangeSheetCount(@Param("year") Integer year,
                                    @Param("month") Integer month,
                                    @Param("receiveStatus") Integer receiveStatus);
    /** 转生产数量 */
    Integer getNotfitySheetCount(@Param("year") Integer year,
                                 @Param("month") Integer month,
                                 @Param("status") Integer status);
    /** --------------------end------------------ */



    /** 执行中数量 */
    Integer findExecCount(Integer deptId);

    /** 未开始数量 */
    Integer findNotStartedCount(Integer deptId);

    /** 工艺执行中数量 */
    Integer findCraExecCount(Integer deptId);

    /** 工艺未开始数量 */
    Integer findCraNotStartedCount(Integer deptId);

    /** 未提交存档清单数量*/
    Integer getNotSubmitFileCount(@Param("postUserId") Integer userId);

    /** 未审核存档清单数量*/
    Integer getNotCheckFileCount(@Param("verifier") Integer userId);

    Integer findCraPartExecCount(Integer id);

    Integer findCraPartNotStartedCount(Integer id);
    /** 未下发存档清单数量*/
    Integer getNotLuessFileCount();

    /** 未签收存档清单数量*/
    Integer getNotSignFileCount();

    /**项目变更查询*/
    List<ProChgInfo> selectProChgInfoList(ProChgInfo query);

    /**变更详细查看*/
    ProChgInfo selectChangeInfoByID(Integer proChangeId);

    /**变更提醒数量查询*/
    Integer getCardChang();

    /**工艺卡待提交数量*/
    Integer getCreateCodeOne(String account);

    /** 未审核存档清单数量*/
    Integer getNotCommitCosCount(@Param("createCode") String createCode,@Param("costType") Integer costType);

    /**项目联络单审核数量*/
    Integer getNotChenkLuodan(@Param("examineId") Integer userId);
}